#ifndef MYVertexTYPES
#define MYVertexTYPES
//create a basic vertex type
struct vertex
{
	D3DXVECTOR3 pos;
	D3DXVECTOR4 color;
	D3DXVECTOR2 texCoord;
	D3DXVECTOR3 normal;

	vertex( D3DXVECTOR3 p, D3DXVECTOR4 c )
	{
		pos = p;
		color = c;
	}
	
	vertex( D3DXVECTOR3 p, D3DXVECTOR4 c, D3DXVECTOR2 tex )
	{
		pos = p;
		color = c;
		texCoord = tex;
	}
	vertex () : normal( D3DXVECTOR3(0,0,0) )
	{			
	}
	
	vertex( D3DXVECTOR3 p, D3DXVECTOR3 n ) : pos(p), normal(n)
	{		
	}	

	vertex( D3DXVECTOR3 p, D3DXVECTOR2 t, D3DXVECTOR3 n ) : pos(p), normal(n), texCoord(t)
	{
	}
	vertex( D3DXVECTOR3 p, D3DXVECTOR4 c, D3DXVECTOR2 t, D3DXVECTOR3 n ) : pos(p), normal(n), texCoord(t), color(c)
	{
	}
};

const D3D10_INPUT_ELEMENT_DESC vertexInputLayout[] = 
{	
		{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0 },
		{ "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0 },
		{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 28, D3D10_INPUT_PER_VERTEX_DATA, 0 },
		{ "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 36, D3D10_INPUT_PER_VERTEX_DATA, 0 }	
	};
const UINT numElementsVertexInputLayout = sizeof( vertexInputLayout ) / sizeof( vertexInputLayout[0] );
#endif;